Error correction codes are often used in electronic systems for detecting and correcting data errors. Such an electronic system typically includes circuits for generating an error correction code based on data, detecting bit errors in the data based on the error correction code, and correcting bit errors in the data based on the error correction code. In many electronic systems, circuits for detecting and correcting bit errors based on error correction codes are in critical paths of the electronic systems. Consequently, these circuits for detecting and correcting bit errors limit data processing rates of the electronic systems.
In some electronic systems, circuits generate error correction codes based on a hamming code. In these electronic systems, circuits generate a minimum number of check bits of an error code for detecting a number of bit errors in data and correcting a number of the bit errors. For example, such a circuit may be capable of detecting and correcting a single bit error in the data as well as detecting a double bit error in the data. The number of bit errors detectable and correctable by these circuits depends on a minimum hamming distance between group codes associated with data bits of the data. The minimum number of check bits needed for detecting the number of bits errors in these electronic systems depends upon the number of data bits in the data and may also depend upon the minimum hamming distance. Although using a minimum number of check bits for detecting and correcting errors in data reduces storage requirements for an error correction code, faster circuits are needed to meet ever-increasing data processing rates of electronic systems.
In light of the above, a need exists for an improved error detection circuit. A further need exists for high-speed error detection and correction circuits.